package com.ledi.guns.config;

import java.util.Date;

import org.apache.ibatis.reflection.MetaObject;
import org.apache.shiro.SecurityUtils;
import org.springframework.stereotype.Component;

import com.baomidou.mybatisplus.mapper.MetaObjectHandler;
import com.ledi.guns.core.shiro.ShiroUser;

/**
 * 文件名称： com.ledi.guns.config.AutoWireMetaObjectHandler.java<br/>
 * 初始作者： 钟小平<br/>
 * 创建日期： 2017年12月8日<br/>
 * 功能说明： MybatisPlus公共字段自动填充 <br/>
 * =================================================<br/>
 * 修改记录：<br/>
 * 修改作者 日期 修改内容<br/>
 * ================================================<br/>
 * Copyright (乐迪教育科技有限公司-幼儿事业部) 2017-2018.All rights reserved.<br/>
 */
@Component
public class AutoWireMetaObjectHandler extends MetaObjectHandler {

	@Override
	public void insertFill(MetaObject metaObject) {

		Object creatorId = metaObject.getValue("creatorId");
		Object createTime = metaObject.getValue("createTime");
		// 获取当前登录用户
		ShiroUser user = (ShiroUser) SecurityUtils.getSubject().getPrincipal();
		if (null == creatorId) {
			metaObject.setValue("creatorId", user.getId());
		}

		if (null == createTime) {
			metaObject.setValue("createTime", new Date());
		}
	}

	@Override
	public void updateFill(MetaObject metaObject) {

		Object updateId = metaObject.getValue("updateId");
		Object updateTime = metaObject.getValue("updateTime");
		// 获取当前登录用户
		ShiroUser user = (ShiroUser) SecurityUtils.getSubject().getPrincipal();
		if (null == updateId) {
			metaObject.setValue("updateId", user.getId());
		}

		if (null == updateTime) {
			metaObject.setValue("updateTime", new Date());
		}
	}
}
